/*! \file Vector2.h
 *	\brief <write description for Vector2.h>
 *
 *	created:	2009/11/12
 *	created:	12:11:2009   17:11
 *	filename: 	c:\src\main\libs\math\Vector2.h
 *	file path:	c:\src\main\libs\math
 *	file base:	Vector2
 *	file ext:	h
 *	author:		Vitalii Trubchaninov
 *				venngraydog@gmail.com
 */

#ifndef _MATH_VECTOR2_H_
#define _MATH_VECTOR2_H_

#pragma once

namespace tt{
namespace math{

template<typename T>
class Vector2
{
public:
	typedef T Value;

public:
	Vector2(void);
	Vector2(Value, Value);
	~Vector2(void);

	Vector2 operator+(const Vector2&) const;
	Vector2 operator-(const Vector2&) const;

	Vector2& operator+=(const Vector2&);
	Vector2& operator-=(const Vector2&);

public:
	Value x;
	Value y;
};

typedef Vector2<Int> Vector2I;
typedef Vector2<Float> Vector2F;
typedef Vector2<Double> Vector2D;

} //namespace math
} //namespace tt
#include "Vector2.inl"

#endif //_MATH_VECTOR2_H_
